gusucode.com > VC++ Win32模式开发的连连看源代码源码程序 > VC++ Win32模式开发的连连看源代码源码程序\code\LinkUpFree.cpp

    //Download by http://www.NewXing.com
// LinkUpFree.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include "Table.h"


#define MAX_LOADSTRING 100

HINSTANCE hInst;								// 定义一个实例
TCHAR szTitle[MAX_LOADSTRING];								// The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];								// The title bar text

HDC	windowDC=NULL;
HDC bufferDC=NULL;

HDC pictureDC0=NULL;HDC pictureDC1=NULL;HDC pictureDC2=NULL;HDC pictureDC3=NULL;HDC pictureDC4=NULL;HDC pictureDC5=NULL;
HDC pictureDC6=NULL;HDC pictureDC7=NULL;HDC pictureDC8=NULL;HDC pictureDC9=NULL;HDC pictureDC10=NULL;HDC pictureDC11=NULL;
HDC pictureDC12=NULL;HDC pictureDC13=NULL;HDC pictureDC14=NULL;HDC pictureDC15=NULL;HDC pictureDC16=NULL;HDC pictureDC17=NULL;
HDC pictureDC18=NULL;HDC pictureDC19=NULL;HDC pictureDC20=NULL;HDC pictureDC21=NULL;HDC pictureDC22=NULL;HDC pictureDC23=NULL;
HDC pictureDC24=NULL;HDC pictureDC25=NULL;HDC pictureDC26=NULL;HDC pictureDC27=NULL;HDC pictureDC28=NULL;HDC pictureDC29=NULL;
HDC pictureDC30=NULL;HDC pictureDC31=NULL;HDC pictureDC32=NULL;HDC pictureDC33=NULL;HDC pictureDC34=NULL;HDC pictureDC35=NULL;

HBITMAP bufferBMP=NULL;

HBITMAP PictureBMP0=NULL;HBITMAP PictureBMP1=NULL;HBITMAP PictureBMP2=NULL;HBITMAP PictureBMP3=NULL;HBITMAP PictureBMP4=NULL;
HBITMAP PictureBMP5=NULL;HBITMAP PictureBMP6=NULL;HBITMAP PictureBMP7=NULL;HBITMAP PictureBMP8=NULL;HBITMAP PictureBMP9=NULL;
HBITMAP PictureBMP10=NULL;HBITMAP PictureBMP11=NULL;HBITMAP PictureBMP12=NULL;HBITMAP PictureBMP13=NULL;HBITMAP PictureBMP14=NULL;
HBITMAP PictureBMP15=NULL;HBITMAP PictureBMP16=NULL;HBITMAP PictureBMP17=NULL;HBITMAP PictureBMP18=NULL;HBITMAP PictureBMP19=NULL;
HBITMAP PictureBMP20=NULL;HBITMAP PictureBMP21=NULL;HBITMAP PictureBMP22=NULL;HBITMAP PictureBMP23=NULL;HBITMAP PictureBMP24=NULL;
HBITMAP PictureBMP25=NULL;HBITMAP PictureBMP26=NULL;HBITMAP PictureBMP27=NULL;HBITMAP PictureBMP28=NULL;HBITMAP PictureBMP29=NULL;
HBITMAP PictureBMP30=NULL;HBITMAP PictureBMP31=NULL;HBITMAP PictureBMP32=NULL;HBITMAP PictureBMP33=NULL;HBITMAP PictureBMP34=NULL;
HBITMAP PictureBMP35=NULL;

HPEN PEN=NULL;
HBRUSH BRUSH=NULL;

Table my_table;
int ClientWidth=0;
int ClientHeight=0;                                                    //定义桌子

ATOM				MyRegisterClass(HINSTANCE hInstance);			//注册窗口类别
BOOL				InitInstance(HINSTANCE, int);					//初始化函数
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);			//处理程序消息
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);				//对话框处理函数
//void Paintrange();
void GameImageInit(HWND hWnd);
void DeleteAllObject();

void GameView(HWND hWnd);
HDC choiceDC(int);

// 主函数
int APIENTRY WinMain(HINSTANCE hInstance,							//APIENTRY 函数调用约定  当前实例句柄
                     HINSTANCE hPrevInstance,						//其他实例句柄
                     LPSTR     lpCmdLine,							//程序命令行所指向的指针
                     int       nCmdShow)							//显示方式
{

	MSG msg;						//消息结构体
	HACCEL hAccelTable;				//定义一个加速器句柄

	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_LINKUPFREE, szWindowClass, MAX_LOADSTRING); 

	MyRegisterClass(hInstance);

//	my_table.InitTable();

	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_LINKUPFREE); // C表示常量 T是win32  加入加速建表


	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))         //翻译加速键表
		{
			TranslateMessage(&msg);										//该函数将虚拟键消息转换为字符消息
			DispatchMessage(&msg);	 									
		}//作用是消息传递给操作系统,然后操作系统去调用我们的回调函数,也就是说我们在窗体的过程函数中处理消息
	}

	return msg.wParam;
}



ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;				              //WNDCLASSEX属于一个窗台类

	wcex.cbSize = sizeof(WNDCLASSEX);   

	wcex.style			= CS_HREDRAW | CS_VREDRAW;// 定义窗体样式
	wcex.lpfnWndProc	= (WNDPROC)WndProc;       //前缀 lpfn 表示该成员是一个指向函数的长指针
	wcex.cbClsExtra		= 0;
	wcex.cbWndExtra		= 0;	//这些变量只用来为窗口过程多增加一些额外的内存空间,我们实在是无需使用它们。
	wcex.hInstance		= hInstance;			//进程句柄 
	wcex.hIcon			= LoadIcon(hInstance, (LPCTSTR)IDI_LINKUPFREE);//数通常用于从资源中装载一个图标图像
	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW );//光标
	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);//背景 
	wcex.lpszMenuName	= NULL;//菜单指针 (LPCSTR)IDC_LINKUPFREE
	wcex.lpszClassName	= szWindowClass;//窗体类名 
	wcex.hIconSm		= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);//和窗口类关联的小图标

	return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    HWND hWnd;//窗口类型句柄


    hInst = hInstance; // Store instance handle in our global variable

    hWnd = CreateWindow(szWindowClass, "我的连连看  [F1]-重新排布", WS_OVERLAPPEDWINDOW,
                     CW_USEDEFAULT, 0, 820, 682, NULL, NULL, hInstance, NULL);

	MessageBox(NULL,"* <很高兴你能百忙之中看我做的游戏>\n\n* 我花了不少时间去熟悉和练习Windows的各种API\n\n* 游戏的每一行代码,都是我自己写的.希望你能仔细\n\n* 考量我的代码更加希望能您你给予我一个学习的\n\n* 机会.\n\n                                     高神恩\n\n* [F1]键用于初始化游戏\n\n* 音乐部分正在编写中"
					 ,"声明",MB_OK); 
	if (!hWnd)
	{
	  return FALSE;
	}
	/////////////////////////
	RECT rt;
	GetClientRect(hWnd,&rt);
	ClientWidth=rt.right-rt.left;
	ClientHeight=rt.bottom-rt.top;

	////////////////////////
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

	GameImageInit(hWnd);

	my_table.Set_Size(ClientWidth,ClientHeight);
	my_table.InitTable();

	
//	Linklist a;


    return TRUE;
}


LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)//回调函数
{
	int mouse_x,mouse_y;
	int x=0;
	int	y=0;
	int wmId, wmEvent;
	PAINTSTRUCT ps;			//此结构包含的信息应用程序使用来绘制一个拥有该应用窗口客户区
	HDC hdc;				//设备句柄
	TCHAR szHello[MAX_LOADSTRING];
	LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
/*
	mouse_x=LOWORD(lParam);
	mouse_y=HIWORD(lParam);
	wmId=LOWORD(wParam);
	wmEvent=HIWORD(wParam);
*/
	switch (message) 
	{

		case WM_LBUTTONDOWN:

			mouse_x=LOWORD(lParam);
			if(mouse_x>ClientWidth)
				mouse_x=ClientWidth;
			else if(mouse_x<0)
				mouse_x=0;

			mouse_y=HIWORD(lParam);
			if(mouse_y>ClientHeight)
				mouse_y=ClientHeight;
			else if(mouse_y<0)
				mouse_y=0;

			x=(int)(mouse_x/(ClientWidth/10))+1;
			y=(int)(mouse_y/(ClientHeight/8))+1;

			if(my_table.tableArrary[y][x].choice==0&&my_table.tableArrary[y][x].type>=0) 
			{
				if((my_table.Get_first_click().choice==0)&&(my_table.Get_second_click().choice==0))
				{
					my_table.Set_first_click(x,y);
				}
				else if((my_table.Get_first_click().choice==1)&&my_table.Get_second_click().choice==0)
				{
					my_table.Set_second_click(x,y);
					if(my_table.Is_Linked())
					{
						my_table.tableArrary[y][x].type=-1;
						my_table.count--;
						my_table.tableArrary[my_table.Get_first_click().y][my_table.Get_first_click().x].type=-1;
						my_table.count--;
						my_table.Delete_first_click(my_table.Get_first_click().x,my_table.Get_first_click().y);
						my_table.Delete_second_click(x,y);
					}
					else
					{
						my_table.Delete_first_click(my_table.Get_first_click().x,my_table.Get_first_click().y);
						my_table.Delete_second_click(x,y);
					}
				}
				else 
				{

				}
			}
			else if(my_table.tableArrary[y][x].choice==1)
			{
				if((my_table.tableArrary[y][x].choice==my_table.Get_first_click().choice)&&
				   (my_table.tableArrary[y][x].type==my_table.Get_first_click().type)&&
				   (my_table.tableArrary[y][x].x/ClientWidth==my_table.Get_first_click().x)&&
				   (my_table.tableArrary[y][x].y/ClientHeight==my_table.Get_first_click().y))
				{
					my_table.Delete_first_click(x,y);
				}
			}


			break;

		case WM_SIZE:
			DeleteAllObject();
			ReleaseDC(hWnd,windowDC);
			GameImageInit(hWnd);
			break;

		case WM_KEYDOWN:
			switch(wParam)
			{
				case VK_F1:
					my_table.InitTable();
					break;
			}


		case WM_PAINT:	
			if(my_table.count>0)
			{
//				DeleteAllObject();
//				ReleaseDC(hWnd,windowDC);
//				GameImageInit(hWnd);
				GameView(hWnd);
			}
			else
			{
				my_table.InitTable();
			}		
			break;

		case WM_DESTROY:		//窗口结束
			DeleteAllObject();
			ReleaseDC(hWnd,windowDC);
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

void GameView(HWND hWnd)
{
	int PictureWidth=0;
	int PictureHeight=0;

	RECT rt;
	GetClientRect(hWnd,&rt);
	ClientWidth=rt.right-rt.left;
	ClientHeight=rt.bottom-rt.top;
	PictureWidth=ClientWidth/10;
	PictureHeight=ClientHeight/8;

//	ClientWidth=810;
//	ClientHeight=660;
//	PictureWidth=81;
//	PictureHeight=81;


	BitBlt(bufferDC,0,0,ClientWidth,ClientHeight,pictureDC0,0,0,SRCCOPY);

	HDC t_DC=NULL;
/*
	for(int s=1;s<A_HEIGHT+1;s++)
	{
		for(int t=1;t<A_WEITH+1;t++)
		{
			my_table.tableArrary[s][t].x=my_table.tableArrary[s][t].x/my_table.Get_Width()*PictureWidth;
			my_table.tableArrary[s][t].y=my_table.tableArrary[s][t].y/my_table.Get_Height()*PictureHeight;		
		}
	}
*/
	for(int i=1;i<A_HEIGHT+1;i++)
	{
		for(int j=1;j<A_WEITH+1;j++)
		{
			t_DC=choiceDC(my_table.tableArrary[i][j].type);
			BitBlt(bufferDC,my_table.tableArrary[i][j].x-PictureWidth,my_table.tableArrary[i][j].y-PictureHeight,PictureWidth,PictureHeight,t_DC,0,0,SRCCOPY);		
		}
	}

	for(int m=1;m<A_HEIGHT+1;m++)
	{
		for(int n=1;n<A_WEITH+1;n++)
		{
			if(my_table.tableArrary[m][n].choice==1)
			{
				Rectangle(bufferDC,(n-1)*PictureWidth,(m-1)*PictureHeight,(n-1)*PictureWidth+PictureWidth,(m-1)*PictureHeight+PictureHeight);
			}
		}
	}

	BitBlt(windowDC,0,0,ClientWidth,ClientHeight,bufferDC,0,0,SRCCOPY);

}


HDC choiceDC(int type)
{
	if(type==1)
		return pictureDC1;
	if(type==2)
		return pictureDC2;
	if(type==3)
		return pictureDC3;
	if(type==4)
		return pictureDC4;
	if(type==5)
		return pictureDC5;
	if(type==6)
		return pictureDC6;
	if(type==7)
		return pictureDC7;
	if(type==8)
		return pictureDC8;
	if(type==9)
		return pictureDC9;
	if(type==10)
		return pictureDC10;
	if(type==11)
		return pictureDC11;
	if(type==12)
		return pictureDC12;
	if(type==13)
		return pictureDC13;
	if(type==14)
		return pictureDC14;
	if(type==15)
		return pictureDC15;
	if(type==16)
		return pictureDC16;
	if(type==17)
		return pictureDC17;
	if(type==18)
		return pictureDC18;
	if(type==19)
		return pictureDC19;
	if(type==20)
		return pictureDC20;
	if(type==21)
		return pictureDC21;
	if(type==22)
		return pictureDC22;
	if(type==23)
		return pictureDC23;
	if(type==24)
		return pictureDC24;
	if(type==25)
		return pictureDC25;
	if(type==26)
		return pictureDC26;
	if(type==27)
		return pictureDC27;
	if(type==28)
		return pictureDC28;
	if(type==29)
		return pictureDC29;
	if(type==30)
		return pictureDC30;
	if(type==31)
		return pictureDC31;
	if(type==32)
		return pictureDC32;
	if(type==33)
		return pictureDC33;
	if(type==34)
		return pictureDC34;
	if(type==35)
		return pictureDC35;
	else
		return NULL;
}


void GameImageInit(HWND hWnd)
{
	RECT rt;
	int ClientWidth=0;
	int ClientHeight=0;
	GetClientRect(hWnd,&rt);

	ClientWidth=rt.right-rt.left;
	ClientHeight=rt.bottom-rt.top;

	my_table.Set_Size(ClientWidth,ClientHeight);

	PEN=CreatePen(PS_SOLID ,5,RGB(255,0,0));//创建画笔

	BRUSH=(HBRUSH)GetStockObject(NULL_BRUSH);//创建画刷


	windowDC=GetDC(hWnd);
	bufferDC=CreateCompatibleDC(windowDC);


	//DC Insert
	pictureDC0=CreateCompatibleDC(windowDC);
	pictureDC1=CreateCompatibleDC(windowDC);
	pictureDC2=CreateCompatibleDC(windowDC);
	pictureDC3=CreateCompatibleDC(windowDC);
	pictureDC4=CreateCompatibleDC(windowDC);
	pictureDC5=CreateCompatibleDC(windowDC);
	pictureDC6=CreateCompatibleDC(windowDC);
	pictureDC7=CreateCompatibleDC(windowDC);
	pictureDC8=CreateCompatibleDC(windowDC);
	pictureDC9=CreateCompatibleDC(windowDC);
	pictureDC10=CreateCompatibleDC(windowDC);
	pictureDC11=CreateCompatibleDC(windowDC);
	pictureDC12=CreateCompatibleDC(windowDC);
	pictureDC13=CreateCompatibleDC(windowDC);
	pictureDC14=CreateCompatibleDC(windowDC);
	pictureDC15=CreateCompatibleDC(windowDC);
	pictureDC16=CreateCompatibleDC(windowDC);
	pictureDC17=CreateCompatibleDC(windowDC);
	pictureDC18=CreateCompatibleDC(windowDC);
	pictureDC19=CreateCompatibleDC(windowDC);
	pictureDC20=CreateCompatibleDC(windowDC);
	pictureDC21=CreateCompatibleDC(windowDC);
	pictureDC22=CreateCompatibleDC(windowDC);
	pictureDC23=CreateCompatibleDC(windowDC);
	pictureDC24=CreateCompatibleDC(windowDC);
	pictureDC25=CreateCompatibleDC(windowDC);
	pictureDC26=CreateCompatibleDC(windowDC);
	pictureDC27=CreateCompatibleDC(windowDC);
	pictureDC28=CreateCompatibleDC(windowDC);
	pictureDC29=CreateCompatibleDC(windowDC);
	pictureDC30=CreateCompatibleDC(windowDC);
	pictureDC31=CreateCompatibleDC(windowDC);
	pictureDC32=CreateCompatibleDC(windowDC);
	pictureDC33=CreateCompatibleDC(windowDC);
	pictureDC34=CreateCompatibleDC(windowDC);
	pictureDC35=CreateCompatibleDC(windowDC);

	//BMP Insert
	bufferBMP=CreateCompatibleBitmap(windowDC,ClientWidth,ClientHeight);

	PictureBMP0=(HBITMAP)LoadImage(NULL,"picture0.bmp",IMAGE_BITMAP,ClientWidth,ClientHeight,LR_LOADFROMFILE);

//	ClientWidth=810;
//	ClientHeight=648;

	PictureBMP1=(HBITMAP)LoadImage(NULL,"picture1.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP2=(HBITMAP)LoadImage(NULL,"picture2.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP3=(HBITMAP)LoadImage(NULL,"picture3.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP4=(HBITMAP)LoadImage(NULL,"picture4.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP5=(HBITMAP)LoadImage(NULL,"picture5.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP6=(HBITMAP)LoadImage(NULL,"picture6.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP7=(HBITMAP)LoadImage(NULL,"picture7.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP8=(HBITMAP)LoadImage(NULL,"picture8.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP9=(HBITMAP)LoadImage(NULL,"picture9.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP10=(HBITMAP)LoadImage(NULL,"picture10.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP11=(HBITMAP)LoadImage(NULL,"picture11.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP12=(HBITMAP)LoadImage(NULL,"picture12.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP13=(HBITMAP)LoadImage(NULL,"picture13.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP14=(HBITMAP)LoadImage(NULL,"picture14.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP15=(HBITMAP)LoadImage(NULL,"picture15.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP16=(HBITMAP)LoadImage(NULL,"picture16.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP17=(HBITMAP)LoadImage(NULL,"picture17.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP18=(HBITMAP)LoadImage(NULL,"picture18.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP19=(HBITMAP)LoadImage(NULL,"picture19.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP20=(HBITMAP)LoadImage(NULL,"picture20.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP21=(HBITMAP)LoadImage(NULL,"picture21.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP22=(HBITMAP)LoadImage(NULL,"picture22.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP23=(HBITMAP)LoadImage(NULL,"picture23.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP24=(HBITMAP)LoadImage(NULL,"picture24.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP25=(HBITMAP)LoadImage(NULL,"picture25.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP26=(HBITMAP)LoadImage(NULL,"picture26.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP27=(HBITMAP)LoadImage(NULL,"picture27.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP28=(HBITMAP)LoadImage(NULL,"picture28.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP29=(HBITMAP)LoadImage(NULL,"picture29.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP30=(HBITMAP)LoadImage(NULL,"picture30.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP31=(HBITMAP)LoadImage(NULL,"picture31.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP32=(HBITMAP)LoadImage(NULL,"picture32.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP33=(HBITMAP)LoadImage(NULL,"picture33.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP34=(HBITMAP)LoadImage(NULL,"picture34.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);
	PictureBMP35=(HBITMAP)LoadImage(NULL,"picture35.bmp",IMAGE_BITMAP,ClientWidth/10,ClientHeight/8,LR_LOADFROMFILE);

	//SelectObject

	SelectObject(bufferDC,bufferBMP);//SelectObject缓冲区

	SelectObject(bufferDC,PEN);//SelectObject 画笔
	SelectObject(bufferDC,BRUSH);//SelectObject 画刷

	SelectObject(pictureDC0,PictureBMP0);
	SelectObject(pictureDC1,PictureBMP1);
	SelectObject(pictureDC2,PictureBMP2);
	SelectObject(pictureDC3,PictureBMP3);
	SelectObject(pictureDC4,PictureBMP4);
	SelectObject(pictureDC5,PictureBMP5);
	SelectObject(pictureDC6,PictureBMP6);
	SelectObject(pictureDC7,PictureBMP7);
	SelectObject(pictureDC8,PictureBMP8);
	SelectObject(pictureDC9,PictureBMP9);
	SelectObject(pictureDC10,PictureBMP10);
	SelectObject(pictureDC11,PictureBMP11);
	SelectObject(pictureDC12,PictureBMP12);
	SelectObject(pictureDC13,PictureBMP13);
	SelectObject(pictureDC14,PictureBMP14);
	SelectObject(pictureDC15,PictureBMP15);
	SelectObject(pictureDC16,PictureBMP16);
	SelectObject(pictureDC17,PictureBMP17);
	SelectObject(pictureDC18,PictureBMP18);
	SelectObject(pictureDC19,PictureBMP19);
	SelectObject(pictureDC20,PictureBMP20);
	SelectObject(pictureDC21,PictureBMP21);
	SelectObject(pictureDC22,PictureBMP22);
	SelectObject(pictureDC23,PictureBMP23);
	SelectObject(pictureDC24,PictureBMP24);
	SelectObject(pictureDC25,PictureBMP25);
	SelectObject(pictureDC26,PictureBMP26);
	SelectObject(pictureDC27,PictureBMP27);
	SelectObject(pictureDC28,PictureBMP28);
	SelectObject(pictureDC29,PictureBMP29);
	SelectObject(pictureDC30,PictureBMP30);
	SelectObject(pictureDC31,PictureBMP31);
	SelectObject(pictureDC32,PictureBMP32);
	SelectObject(pictureDC33,PictureBMP33);
	SelectObject(pictureDC34,PictureBMP34);
	SelectObject(pictureDC35,PictureBMP35);

}

void DeleteAllObject()
{
	DeleteDC(pictureDC0);
	DeleteDC(pictureDC1);
	DeleteDC(pictureDC2);
	DeleteDC(pictureDC3);
	DeleteDC(pictureDC4);
	DeleteDC(pictureDC5);
	DeleteDC(pictureDC6);
	DeleteDC(pictureDC7);
	DeleteDC(pictureDC8);
	DeleteDC(pictureDC9);
	DeleteDC(pictureDC10);
	DeleteDC(pictureDC11);
	DeleteDC(pictureDC12);
	DeleteDC(pictureDC13);
	DeleteDC(pictureDC14);
	DeleteDC(pictureDC15);
	DeleteDC(pictureDC16);
	DeleteDC(pictureDC17);
	DeleteDC(pictureDC18);
	DeleteDC(pictureDC19);
	DeleteDC(pictureDC20);
	DeleteDC(pictureDC21);
	DeleteDC(pictureDC22);
	DeleteDC(pictureDC23);
	DeleteDC(pictureDC24);
	DeleteDC(pictureDC25);
	DeleteDC(pictureDC26);
	DeleteDC(pictureDC27);
	DeleteDC(pictureDC28);
	DeleteDC(pictureDC29);
	DeleteDC(pictureDC30);
	DeleteDC(pictureDC30);
	DeleteDC(pictureDC31);
	DeleteDC(pictureDC32);
	DeleteDC(pictureDC33);
	DeleteDC(pictureDC34);
	DeleteDC(pictureDC35);
	
	DeleteDC(bufferDC);
	

	DeleteObject(PEN);//SelectObject 画笔
	DeleteObject(BRUSH);//SelectObject 画刷

	DeleteObject(PictureBMP0);
	DeleteObject(PictureBMP1);
	DeleteObject(PictureBMP2);
	DeleteObject(PictureBMP3);
	DeleteObject(PictureBMP4);
	DeleteObject(PictureBMP5);
	DeleteObject(PictureBMP6);
	DeleteObject(PictureBMP7);
	DeleteObject(PictureBMP8);
	DeleteObject(PictureBMP9);
	DeleteObject(PictureBMP10);
	DeleteObject(PictureBMP10);
	DeleteObject(PictureBMP11);
	DeleteObject(PictureBMP12);
	DeleteObject(PictureBMP13);
	DeleteObject(PictureBMP14);
	DeleteObject(PictureBMP15);
	DeleteObject(PictureBMP16);
	DeleteObject(PictureBMP17);
	DeleteObject(PictureBMP18);
	DeleteObject(PictureBMP19);
	DeleteObject(PictureBMP20);
	DeleteObject(PictureBMP20);
	DeleteObject(PictureBMP21);
	DeleteObject(PictureBMP22);
	DeleteObject(PictureBMP23);
	DeleteObject(PictureBMP24);
	DeleteObject(PictureBMP25);
	DeleteObject(PictureBMP26);
	DeleteObject(PictureBMP27);
	DeleteObject(PictureBMP28);
	DeleteObject(PictureBMP29);
	DeleteObject(PictureBMP30);
	DeleteObject(PictureBMP20);
	DeleteObject(PictureBMP31);
	DeleteObject(PictureBMP32);
	DeleteObject(PictureBMP33);
	DeleteObject(PictureBMP34);
	DeleteObject(PictureBMP35);

	DeleteObject(bufferBMP);//SelectObject缓冲区
}